在 AES 加密過程中,首先需要將明文數據轉換為二進位資料,然後將其分成一個個與加密金鑰長度相同的區塊(通常為 128、192 或 256 位元),這些區塊稱為「明文區塊」。接著,透過 AES 演算法,將每個明文區塊加密為對應的「密文區塊」。
簡而言之,AES 演算法將一組固定長度的輸入數據(稱為「區塊」)經由特定的「密鑰」映射為另一組輸出數據,這個映射過程即為加密。
對於每個可能的輸入塊,都存在一個唯一的輸出塊,而這個對應關係是由密鑰所控制的。
* 由Rijndael金鑰生成方案產生。
* 金鑰長度則可以是128,192或256位元
加密時,各輪AES加密迴圈(除最後一輪外)均包含4個步驟:
如圖所示:
最後一個加密迴圈中省略MixColumns步驟,而以另一個AddRoundKey取代。
單射(Injection)
滿射(Surjection)
對射(Bijection)
話不多說直接上圖:
介紹 AES 加密算法的核心概念。
主要的重點我都統整在上面的介紹了,題目問我們一對一在數學上的術語是什麼。
根據上面的內容,這是對射(Bijection)。
所以flag為
crypto{Bijection}
AES介紹:
單射、滿射與對射:
今天閱讀了這些內容,同時思考後續的內容要寫什麼。應該可以把AES的部分寫完,但是原先想寫的古典密碼和解題....可能很難兩者都寫。